package com.njmaomao.gj.pyot.common.bean.dto;

import com.njmaomao.gj.pyot.common.bean.BaseRequest;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

@ApiModel(value = "订单支付参数")
public class OrderPayReqDTO extends BaseRequest {

    @ApiModelProperty(notes = "微信支付分配的公众账号ID（企业号corpid即为此appId）必传")
    @NotBlank
    private String appId;

    @ApiModelProperty(notes = "用户ID 必传")
    @NotNull
    @Min(1)
    private Long customerId;

    @ApiModelProperty(notes = "订单编码 必传")
    @NotBlank
    private String orderCode;

    @ApiModelProperty(notes = "用户标识,公众号支付时必传,o2o合单支付时毕传")
    private String openId;

    @ApiModelProperty(notes = "订单类型 1-订单系统订单（默认值） 2-内容订单 3-应用自定义订单")
    private Integer orderType = 1;

    @ApiModelProperty(notes = "支付成功回调url（支付系统回调，非微信直接回调）；如果不填，可自行监听订单状态队列，订单支付完成时会向此队列发送“已支付”消息")
    private String callBackUrl;

    @ApiModelProperty(notes = "订单金额，单位（分），orderType==3时必传")
    private Integer totalFee;

    @ApiModelProperty(notes = "订单描述，orderType==3时必传")
    @Size(max = 32)
    private String orderDesc;

    @ApiModelProperty(value = "是否接仿真环境，默认false")
    private boolean isSandbox = false;

    public Long getCustomerId() {
        return customerId;
    }

    public void setCustomerId(Long customerId) {
        this.customerId = customerId;
    }

    public boolean getIsSandbox() {
        return isSandbox;
    }

    public void setIsSandbox(boolean isSandbox) {
        this.isSandbox = isSandbox;
    }

    public String getOrderCode() {
        return orderCode;
    }

    public void setOrderCode(String orderCode) {
        this.orderCode = orderCode;
    }

    public String getOpenId() {
        return openId;
    }

    public void setOpenId(String openId) {
        this.openId = openId;
    }

    public Integer getOrderType() {
        return orderType;
    }

    public void setOrderType(Integer orderType) {
        this.orderType = orderType;
    }

    public String getCallBackUrl() {
        return callBackUrl;
    }

    public void setCallBackUrl(String callBackUrl) {
        this.callBackUrl = callBackUrl;
    }

    public Integer getTotalFee() {
        return totalFee;
    }

    public void setTotalFee(Integer totalFee) {
        this.totalFee = totalFee;
    }

    public String getAppId() {
        return appId;
    }

    public void setAppId(String appId) {
        this.appId = appId;
    }

    public String getOrderDesc() {
        return orderDesc;
    }

    public void setOrderDesc(String orderDesc) {
        this.orderDesc = orderDesc;
    }

}
